package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class PruebaDAOs10 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// //
		// ***********************************************************************************************
		// BITACORAPUESTO
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<BITACORAPUESTO>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			java.text.SimpleDateFormat simpledf = new java.text.SimpleDateFormat(
					"yyyy/MM/dd");
			java.util.Date fecha;

			fecha = simpledf.parse("2008/03/03");
			java.sql.Date fechaSql = new java.sql.Date(fecha.getTime());
			fecha = simpledf.parse("2008/03/11");
			java.sql.Date fechaSql2 = new java.sql.Date(fecha.getTime());

			TipoEmpleadoTO tipoEmpleadoTO = new TipoEmpleadoTO();
			tipoEmpleadoTO.setIdTipoEmpleado((short) 1);

			BitacoraPuestoDAO bitacoraPuestoDAO = fabricaMySQL
					.getBitacoraPuestoDAO();
			BitacoraPuestoTO bitacoraPuestoTO = new BitacoraPuestoTO(0,
					(short) 6, "DBA", "personal encargado de algo diferente",
					tipoEmpleadoTO, true, fechaSql);

			// insert
			if (bitacoraPuestoDAO.insertBitacoraPuesto(bitacoraPuestoTO)) {
				bitacoraPuestoDAO.insertBitacoraPuesto(bitacoraPuestoTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// actualiza
			bitacoraPuestoTO.setIdOperacion(1);
			tipoEmpleadoTO.setIdTipoEmpleado((short) 1);
			bitacoraPuestoTO.setTipoEmpleadoTO((tipoEmpleadoTO));

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			bitacoraPuestoTO = bitacoraPuestoDAO.findBitacoraPuestoById(1);
			if (bitacoraPuestoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("BITACORAPUESTO");
				ImprimirTO.Imprime(bitacoraPuestoTO);
				System.out.println("TIPOEMPLEADO");
				ImprimirTO.Imprime(bitacoraPuestoTO.getTipoEmpleadoTO());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT BITACORAPUESTO +**");
			java.util.Collection<BitacoraPuestoTO> listBitacoraPuestoTO = bitacoraPuestoDAO
					.selectBitacoraPuesto();
			for (int i = 0; i < listBitacoraPuestoTO.size(); i++) {
				bitacoraPuestoTO = ((ArrayList<BitacoraPuestoTO>) listBitacoraPuestoTO)
						.get(i);
				System.out.println("BITACORAPUESTO");
				ImprimirTO.Imprime(bitacoraPuestoTO);
				System.out.println("TIPOEMPLEADO");
				ImprimirTO.Imprime(bitacoraPuestoTO.getTipoEmpleadoTO());

			}

			// busqueda Multiple

			System.out
					.println("**++++++++++++++++++++++ SELECT BITACORAPUESTO BY RANGOFECHA**");
			listBitacoraPuestoTO = bitacoraPuestoDAO
					.selectBitacoraPuestoByRangoFecha(fechaSql, fechaSql2);
			for (int i = 0; i < listBitacoraPuestoTO.size(); i++) {
				bitacoraPuestoTO = ((ArrayList<BitacoraPuestoTO>) listBitacoraPuestoTO)
						.get(i);
				System.out.println("BITACORAPUESTO");
				ImprimirTO.Imprime(bitacoraPuestoTO);
				System.out.println("TIPOEMPLEADO");
				ImprimirTO.Imprime(bitacoraPuestoTO.getTipoEmpleadoTO());

			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT BITACORAPUESTO BY PUESTO+**");
			listBitacoraPuestoTO = bitacoraPuestoDAO
					.selectBitacoraPuestoByIdPuesto((short) 1);
			if (listBitacoraPuestoTO != null) {
				for (int i = 0; i < listBitacoraPuestoTO.size(); i++) {
					bitacoraPuestoTO = ((ArrayList<BitacoraPuestoTO>) listBitacoraPuestoTO)
							.get(i);
					System.out.println("BITACORAPUESTO");
					ImprimirTO.Imprime(bitacoraPuestoTO);
					System.out.println("TIPOEMPLEADO");
					ImprimirTO.Imprime(bitacoraPuestoTO.getTipoEmpleadoTO());

				}
			} else {
				System.out.println("No hay resultados en la Busqueda");
			}

			// Busca
			System.out
					.println("------------------- BUSQUEDA POR NOMBRE TIPOEMPLEADO");
			bitacoraPuestoTO = bitacoraPuestoDAO
					.selectBitacoraPuestoByNombreTipoEmpleado("DBA", (short) 1);
			if (bitacoraPuestoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("BITACORAPUESTO");

				for (int x = 0; x < bitacoraPuestoTO.getListIdOperacion().length; x++) {
					System.out.println("IDBITACORAPUESTO");
					System.out
							.println(bitacoraPuestoTO.getListIdOperacion()[x]);
				}
				for (int x = 0; x < bitacoraPuestoTO.getListIdPuesto().length; x++) {
					System.out.println("IDPUESTO");
					System.out.println(bitacoraPuestoTO.getListIdPuesto()[x]);
				}
				for (int x = 0; x < bitacoraPuestoTO.getListNombre().length; x++) {
					System.out.println("NOMBRE");
					System.out.println(bitacoraPuestoTO.getListNombre()[x]);
				}
				for (int x = 0; x < bitacoraPuestoTO.getListDescripcion().length; x++) {
					System.out.println("DESCRIPCION");
					System.out
							.println(bitacoraPuestoTO.getListDescripcion()[x]);
				}
				System.out.println("TIPOEMPLEADO");
				ImprimirTO.Imprime(bitacoraPuestoTO.getTipoEmpleadoTO());

			} else {
				System.out.println("No hay resultados en la seleccion");
			}

		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

		// ***********************************************************************************************
		// //
		// ***********************************************************************************************
		// SUBMARCA
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<SUBMARCA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			MarcaTO marcaTO = new MarcaTO();
			marcaTO.setIdMarca((short) 1);

			SubmarcaDAO submarcaDAO = fabricaMySQL.getSubmarcaDAO();
			SubmarcaTO submarcaTO = new SubmarcaTO(0, "pingoo", marcaTO, true);

			// insert
			if (submarcaDAO.insertSubmarca(submarcaTO)) {
				submarcaDAO.insertSubmarca(submarcaTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// borra
			resultado = submarcaDAO.DesactivaSubmarca(2);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>>>>borrado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el borrado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion al Borrado");

			// actualiza
			submarcaTO.setIdSubmarca(1);
			marcaTO.setIdMarca((short) 22);
			submarcaTO.setMarcaTO((marcaTO));

			resultado = submarcaDAO.updateSubmarca(submarcaTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			submarcaTO = submarcaDAO.findSubmarcaById(1);
			if (submarcaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("SUBMARCA");
				ImprimirTO.Imprime(submarcaTO);
				System.out.println("MARCA");
				ImprimirTO.Imprime(submarcaTO.getMarcaTO());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------------- BUSQUEDA POR NOMBRE MARCA");
			submarcaTO = submarcaDAO.findSubmarcaByNombreMarca("yaris",
					(short) 19);
			if (submarcaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("SUBMARCA");
				ImprimirTO.Imprime(submarcaTO);
				System.out.println("MARCA");
				ImprimirTO.Imprime(submarcaTO.getMarcaTO());

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out.println("**++++++++++++++++++++++ SELECT SUBMARCA +**");
			java.util.Collection<SubmarcaTO> listSubmarcaTO = submarcaDAO
					.selectSubmarca();
			if (listSubmarcaTO != null) {
				for (int i = 0; i < listSubmarcaTO.size(); i++) {
					submarcaTO = ((ArrayList<SubmarcaTO>) listSubmarcaTO)
							.get(i);
					System.out.println("SUBMARCA");
					ImprimirTO.Imprime(submarcaTO);
					System.out.println("MARCA");
					ImprimirTO.Imprime(submarcaTO.getMarcaTO());
				}
			} 
			else {
				System.out.println("seleccion sin resultados");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT SUBMARCA ACTIVO+**");
			listSubmarcaTO = submarcaDAO.selectActivoSubmarca();
			if (listSubmarcaTO != null) {
				for (int i = 0; i < listSubmarcaTO.size(); i++) {
					submarcaTO = ((ArrayList<SubmarcaTO>) listSubmarcaTO)
							.get(i);
					System.out.println("SUBMARCA");
					ImprimirTO.Imprime(submarcaTO);
					System.out.println("MARCA");
					ImprimirTO.Imprime(submarcaTO.getMarcaTO());
				}
			} 
			else {
				System.out.println("seleccion sin resultados");
			}
			
			// Busca
			System.out.println("------------------- BUSQUEDA POR MARCA");
			submarcaTO = submarcaDAO.selectSubmarcaByMarca((short)19);
			if (submarcaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("SUBMARCA");

				for (int x = 0; x < submarcaTO.getListIdSubmarca().length; x++) {
					System.out.println("IDSUBMARCA");
					System.out.println(submarcaTO.getListIdSubmarca()[x]);
				}
				for (int x = 0; x < submarcaTO.getListNombre().length; x++) {
					System.out.println("NOMBRE");
					System.out.println(submarcaTO.getListNombre()[x]);
				}
				for (int x = 0; x < submarcaTO.getListActivo().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(submarcaTO.getListActivo()[x]);
				}

				System.out.println("MARCA");
				ImprimirTO.Imprime(submarcaTO.getMarcaTO());

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			// Busca
			System.out.println("------------------- BUSQUEDA ACTIVO POR MARCA");
			submarcaTO = submarcaDAO.selectActivoSubmarcaByMarca((short)22);
			if (submarcaTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("SUBMARCA");

				for (int x = 0; x < submarcaTO.getListIdSubmarca().length; x++) {
					System.out.println("IDSUBMARCA");
					System.out.println(submarcaTO.getListIdSubmarca()[x]);
				}
				for (int x = 0; x < submarcaTO.getListNombre().length; x++) {
					System.out.println("NOMBRE");
					System.out.println(submarcaTO.getListNombre()[x]);
				}
				for (int x = 0; x < submarcaTO.getListActivo().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(submarcaTO.getListActivo()[x]);
				}

				System.out.println("MARCA");
				ImprimirTO.Imprime(submarcaTO.getMarcaTO());

			} else {
				System.out.println("Falla en la seleccion");
			}

			

		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}

}
